part of '../page.dart';

class _CustomLexicalItemInputPresentationModel {
  const _CustomLexicalItemInputPresentationModel({
    required this.globalKey,
    required this.titleShakeAnimationController,
    required this.titleTextEditingController,
    required this.titleTextFieldFocusNode,
    required this.transcriptionTextEditingController,
    required this.transcriptionTextFieldFocusNode,
    required this.translationShakeAnimationController,
    required this.translationTextEditingController,
    required this.translationTextFieldFocusNode,
    required this.useCaseInputPresentationModels,
  });

  final GlobalKey globalKey;

  final AnimationController titleShakeAnimationController;
  final TextEditingController titleTextEditingController;
  final FocusNode titleTextFieldFocusNode;

  final TextEditingController transcriptionTextEditingController;
  final FocusNode transcriptionTextFieldFocusNode;

  final AnimationController translationShakeAnimationController;
  final TextEditingController translationTextEditingController;
  final FocusNode translationTextFieldFocusNode;

  final BuiltList<_UseCaseInputPresentationModel> useCaseInputPresentationModels;

  _CustomLexicalItemInputPresentationModel copyWith({
    GlobalKey Function()? globalKey,
    AnimationController Function()? titleShakeAnimationController,
    TextEditingController Function()? titleTextEditingController,
    FocusNode Function()? titleTextFieldFocusNode,
    TextEditingController Function()? transcriptionTextEditingController,
    FocusNode Function()? transcriptionTextFieldFocusNode,
    AnimationController Function()? translationShakeAnimationController,
    TextEditingController Function()? translationTextEditingController,
    FocusNode Function()? translationTextFieldFocusNode,
    BuiltList<_UseCaseInputPresentationModel> Function()? useCaseInputPresentationModels,
  }) {
    return _CustomLexicalItemInputPresentationModel(
      globalKey: globalKey == null ? this.globalKey : globalKey(),
      titleShakeAnimationController: titleShakeAnimationController == null
          ? this.titleShakeAnimationController
          : titleShakeAnimationController(),
      titleTextEditingController: titleTextEditingController == null
          ? this.titleTextEditingController
          : titleTextEditingController(),
      titleTextFieldFocusNode: titleTextFieldFocusNode == null
          ? this.titleTextFieldFocusNode
          : titleTextFieldFocusNode(),
      transcriptionTextEditingController: transcriptionTextEditingController == null
          ? this.transcriptionTextEditingController
          : transcriptionTextEditingController(),
      transcriptionTextFieldFocusNode: transcriptionTextFieldFocusNode == null
          ? this.transcriptionTextFieldFocusNode
          : transcriptionTextFieldFocusNode(),
      translationShakeAnimationController: translationShakeAnimationController == null
          ? this.translationShakeAnimationController
          : translationShakeAnimationController(),
      translationTextEditingController: translationTextEditingController == null
          ? this.translationTextEditingController
          : translationTextEditingController(),
      translationTextFieldFocusNode: translationTextFieldFocusNode == null
          ? this.translationTextFieldFocusNode
          : translationTextFieldFocusNode(),
      useCaseInputPresentationModels: useCaseInputPresentationModels == null
          ? this.useCaseInputPresentationModels
          : useCaseInputPresentationModels(),
    );
  }
}
